package com.hfut.jpoa.service;

import java.util.List;
import java.util.Map;

import com.hfut.jpoa.common.dto.ResultDto;
import com.hfut.jpoa.dto.SysparaDTO;
import com.hfut.jpoa.model.Syspara;
import com.hfut.jpoa.service.exception.SysparaException;

public interface SysparaService
{

	/**
	 * 根据字典id查询字典信息
	 * 
	 * @param id
	 * 
	 * @return Syspara
	 * @throws SysparaException
	 */
	public Syspara getSyspara(long id) throws SysparaException;

	/**
	 * 根据字典属性key查询字典信息列表
	 * 
	 * @param key
	 * 
	 * @return List<Syspara>
	 * @throws SysparaException
	 */
	public List<Syspara> getSyspara(String key) throws SysparaException;

	/**
	 * 根据字典名称,字典类型,字典编码,状态分页查询字典信息
	 * 
	 * @param systemConfigDTO
	 * @return ResultDto<Syspara>
	 * @throws SysparaException
	 */
	public ResultDto<Syspara> querySysparaInfoForPage(SysparaDTO systemConfigDTO)
	        throws SysparaException;

	/**
	 * 
	 * 根据条件查询字典信息 <功能详细描述>
	 * 
	 * @param Syspara
	 * @return
	 * @throws SysparaException
	 */
	public Syspara selectSysparaInfo(Syspara Syspara) throws SysparaException;

	/**
	 * 
	 * 新增字典信息 <功能详细描述>
	 * 
	 * @param systemConfig
	 * @throws SysparaException
	 */
	public void insertSystemConfig(Syspara systemConfig)
	        throws SysparaException;

	/**
	 * 
	 * 编辑字典信息 <功能详细描述>
	 * 
	 * @param systemConfig
	 * @throws SysparaException
	 */
	public void updateSyspara(Syspara record) throws SysparaException;

	/**
	 * 
	 * 根据字典类型查询重复的记录 <功能详细描述>
	 * 
	 * @return
	 * @throws SysparaException
	 */
	public List<Syspara> selectSameSysConfig() throws SysparaException;

	/**
	 * 
	 * 批量修改同类型的索引值 <功能详细描述>
	 * 
	 * @param sameIdTypeList
	 * @throws SysparaException
	 */
	public void batchUpdateIndex(List<String> sameIdTypeList)
	        throws SysparaException;

	/**
	 * 分页查询字典表列表
	 * 
	 * @param sysparaDTO
	 * @return
	 */
	public ResultDto<Syspara> list(SysparaDTO sysparaDTO)
	        throws SysparaException;

	/**
	 * 分页查询字典表列表
	 * 
	 * @param sysparaDTO
	 * @return
	 */
	public ResultDto<Syspara> queryCategoryInfoForPage(SysparaDTO categoryDTO)
	        throws SysparaException;

	/**
	 * 增加字典配置
	 * 
	 * @param record
	 * @return
	 * @throws SysparaException
	 */
	public void saveSyspara(Syspara record) throws SysparaException;

	/**
	 * 查询字典表详情
	 * 
	 * @param syspara
	 * @return
	 * @throws SysparaException
	 */
	public Syspara findSysparaInfo(Syspara syspara) throws SysparaException;

	/**
	 * 验证编码是否已经被使用
	 * 
	 * @param syspara
	 * 
	 * @return 存在返回true，失败返回false
	 * @throws SysparaException
	 */
	public boolean codeValidator(Syspara syspara) throws SysparaException;

	/**
	 * 查询字典列表
	 * 
	 * @param config
	 * @return
	 * @throws SysparaException
	 */
	public List<Syspara> querySysparaList(Syspara config)
	        throws SysparaException;
	
	

}
